﻿using System;

namespace ExtensionsMadeEasy.Utilities.ValueConverters
{
    /// <summary>
    /// Converts values...
    /// </summary>
    /// <typeparam name="Me">Jan Van der Haegen</typeparam>
    /// <typeparam name="You">Not Jan Van der Haegen</typeparam>
    public interface IValueConverter<Me, You>
    {
        /// <summary>
        /// Converts values...
        /// </summary>
        /// <param name="value">The value to convert</param>
        /// <returns>The converted value</returns>
        Me Convert(You value);

        /// <summary>
        /// Checks if this converter can convert the given value.
        /// </summary>
        /// <param name="value">The value to convert</param>
        /// <returns>True if calling convert is valid, else false.</returns>
        bool CanConvert(You value);
    }
}
